import type {
  FileConfigDtlVo,
  FileConfigPageQo,
  FileConfigQo,
  FileConfigVo,
} from '#/system/file/fileConfig'
import { http } from '@/utils/request/index'

/**
 * 获取文件配置分页列表
 * @param params 查询参数
 * @returns 文件配置列表
 */
export function getFileConfigPageListApi(params: FileConfigPageQo) {
  return http.request<PageResult<FileConfigVo>>('get', '/admin-api/system/fileConfig/fileConfigPage', {
    params,
  })
}

/**
 * 设置为默认文件配置
 * @param id 文件配置id
 */
export function setByIdConfigMasterApi(id?: string) {
  return http.request('post', `/admin-api/system/fileConfig/fileSetMaster/${id}`)
}

/**
 * 获取文件配置详情
 * @param id 文件配置id
 * @returns 文件配置详情
 */
export function getFileConfigDetailsApi(id?: string) {
  return http.request<FileConfigDtlVo>('get', `/admin-api/system/fileConfig/fileConfigDetails/${id}`)
}

/**
 * 新增文件配置
 * @param data 文件配置信息
 * @returns 文件配置id
 */
export function createFileConfigApi(data: FileConfigQo) {
  return http.request<string>('post', '/admin-api/system/fileConfig/fileConfigCreate', {
    data,
  })
}

/**
 * 修改文件配置
 * @param data 文件配置信息
 * @returns 文件配置id
 */
export function updateFileConfigApi(data: FileConfigQo) {
  return http.request<string>('post', '/admin-api/system/fileConfig/fileConfigUpdate', {
    data,
  })
}

/**
 * 删除文件配置
 * @param idList 文件配置id列表
 * @returns 文件配置id
 */
export function deleteFileConfigApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/fileConfig/fileConfigRemove', {
    params: {
      idList: idList.join(','),
    },
  })
}
